package com.alibaba.chaosblade.box.toolsmgr.ansible;

import com.alibaba.chaosblade.box.toolsmgr.model.MgrRequest;

import java.util.List;

/**
 * @author: xinyuan
 * @create: 2022-01-07 9:41 PM
 */

public interface AnsibleCommand {


    /**
     * 根据管理请求生成Ansible命令
     * @param mgrRequest 管理请求对象，包含执行命令所需的各种参数
     * @return 生成的Ansible命令字符串
     */
    String getCommand(MgrRequest mgrRequest);

    /**
     * 判断Ansible命令执行结果是否符合预期
     * @param result 命令执行结果列表
     * @param ignoreBackgroundTimeout 是否忽略后台超时
     * @return 执行结果是否符合预期
     */
    boolean resultPredicate(List<String> result, boolean ignoreBackgroundTimeout);

}
